The present invention draws upon two different areas of communication: data packet-based communication employing Internet addresses and circuit-based communication where telephone (or other identifier) number portability has evolved to enable a subscriber to “port” a subscriber telephone number or other communication identifier geographically and/or between service providers. Packet-based communications are addressed first.
When computers attached to a network communicate, Internet protocol (IP) addresses are used to identify those computers and typically correspond to 32 bit integers for IP version 4 or 128 bit integers IP version 6. Although such IP addresses provide a convenient, compact representation for specifying the source and destination for packets sent across an Internet, human users prefer to assign computers pronounceable, easily remembered names. As a result, the domain naming system (DNS) was developed to provide a scheme for assigning meaningful, high level names to a large set of computers, and to provide a mechanism that maps between high level computer names and IP addresses.
In general, the domain naming system can be viewed as a distributed, shared database of domain names and corresponding IP addresses. Domain servers, more commonly called DNS servers, maintain these databases. An example of a common DNS server is a UNIX-type machine running a version of Berkeley Internet Naming Software (BIND). A domain name may consist of a sequence of subnames separated by a delimiter character—the period. Individual sections of the name might represent sites or groups, but the domain naming system simply refers to each section of a name as a label. An example of such a domain name is an Internet address such as http://www.ericsson.se or an e-mail address such as name@ericsson.com. The label after the period is the site name authorized by a central authority. The label(s) before the period is(are) the part of the name controlled by the specific site. Here, the top level Internet domain corresponding to the site is the country code “se” for Sweden, and for e-mail address, it is the top level domain “com”.
Domain servers are conceptually arranged in a tree structure that corresponds to a naming hierarchy. The root of the tree is a server that recognizes the top level domains (or tiers) and knows which server resolves each domain. Given a name to resolve, the root can choose the correct server for that name. At the next level or tier, a set of name servers each provide resolution answers for one top level domain, e.g., se. A server at this domain knows which servers can resolve each of the subdomains under its domain. At the third level of the tree, name servers provide answers for subdomains, e.g., ericsson under se. The conceptual tree continues with one server at each level for which a subdomain has been defined.
Links in the conceptual tree, however, do not indicate physical network connections. Instead, they point to other name servers. Conceptually, domain name resolution proceeds top down, starting with the “root” name server and proceeding to servers located at the branches or leaves of the tree. There are two ways to use the domain naming system: (1) by contacting name servers one at a time, or (2) asking a name server system to perform the complete translation. In either case, client software forms a domain name query that contains the name to be resolved, a declaration of the class of the name, the type of answer desired, and a code that specifies whether the name server should translate the name completely. It sends the query to a DNS server for resolution.
When a DNS server receives a query, it checks to see if the name lies in the subdomain for which it is an authority. If so, it translates the name to an address according to its database and appends an answer to the query before sending it back to the client. If the DNS server cannot resolve the name completely, it checks to see what type of interaction the client specified. If the client requested complete translation, (i.e., recursive resolution), the server contacts a DNS server that can resolve the name and returns the answer to the client. If the client requested non-recursive resolution, (i.e., iterative resolution), the name server cannot supply an answer. Instead, it generates a reply that specifies the name server the client should contact next to resolve the name. The dynamic host configuration protocol (DHCP) provides automated procedures by which a master node can assign an IP address to a server in the Internet, e.g., a DNS server. In general, IP addresses can be allocated to an entity either statically, i.e., a fixed IP address, or dynamically, i.e., only for as long as the entity is actively connected to the Internet. User devices, like a computer entity or a mobile device in a global packet radio system (GPRS) system, are normally assigned temporary Internet addresses. Although conceptually fairly simple, in practice, the resolution of IP addresses using DNS can be complex and time consuming.
The Internet and the domain naming system are designed to carry packet traffic for enabling computers to communicate. Other types of networks are designed to carry circuit-switched traffic. An example of a circuit-switched network is a legacy network, which employs the well-established Signaling System No. 7 (SS-7) as defined by various standards bodies. The routing of a telephone call through a legacy network employs a structured telephone numbering plan. Such structured rules are defined by the International Telecommunication Union (ITU) in the E-series Recommendation E.164. The E.164 numbering is applicable in all domains of telecommunications systems including wireline and wireless systems. Each physical node, referred to as a local exchange, is allocated one or more unique exchange number groups. The telephone number of a subscriber typically includes both an exchange number group (typically allocated in ten thousand number blocks) for the exchange to which a subscriber is connected, and a number in that group which is specific to the subscriber.
For example, a subscriber having a telephone number 881–1657 is connected to a local exchange having an exchange number group 881, within that group, the subscriber has a subscriber number of 1657. Thus, the telephone number is geographical in the sense that there is a defined relationship between the telephone number and a geographical area served by the exchange to which the subscriber is connected. There are also non-geographical telephone numbers where no geographical relationship exists. For example, toll free numbers, virtual private network numbers, and universal access numbers are typically serviced by intelligent networks (IN). IN services are controlled and executed by a service control point (SCP) using data stored in a service data function (SDF).
When a subscriber physically re-locates or changes service providers, it is desirable for the subscriber not to have to change his telephone number. Accordingly, number portability services permit a subscriber to “port” or transfer his telephone number to wherever the subscriber physically relocates or to a different service provider. Similarly, a mobile subscriber E.164 identification number, such as the MSISDN, is used to identify the mobile subscriber, the subscriber's subscription, and the subscriber's current location. When a mobile subscriber changes service providers, a mobile subscriber number portability database is updated to reflect the change. Commonly-assigned U.S. Pat. No. 6,064,887 describes an example of mobile subscriber number portability in a telecommunications network that permits a mobile subscriber to retain its same MS ISDN when changing service providers.
Recently, there have been discussions in the Internet Engineering Task Force (IETF) and other forums of the possibility of permitting a user to enter a telephony number, hereafter often referred to as an “E.164 number,” into a computing device with the goal of treating that E.164 number as a DNS query for which a corresponding Internet address is supplied by the DNS. This particular type of DNS query is referred to as an ENUM query. A recent IETF request for comments (RFC) 2916 entitled, “E.164 Number and DNS,” outlines the possible use of the domain naming system for the storage of E.164 telephony numbers. The DNS is used to identify available services connected to an E.164 number.
While this idea is quite desirable in theory, there are a number of problems before it becomes practical. In particular, deploying an E.164 number-to-IP address mapping within the DNS infrastructure is quite cumbersome. For example, in order to accommodate portability of the E.164 number within the domain naming system for both different geographical locations and different service providers, it would be necessary to update the E.164 and IP-address relationship in the DNS databases whenever a portability process is executed for a specific user. In addition, it would be necessary to upgrade the DNS infrastructure with many more DNS servers to handle the millions/billions of numbers that exist in the telecommunications world. There must be coordination of the user location or subscription information between the DNS and telecommunication systems. Service provider's management systems would need to be updated to attach the DNS/DHCP management routines to the same management routines used to handle the portability service of the E.164 numbering scheme. Furthermore, the very openness and flexibility of the Internet in allocating temporary IP-addresses to user devices potentially undermines the integrity of simple, one-to-one mapping tables between E.164 telephone numbers and IP-addresses. Sophisticated protection against hackers modifying the stored E.164 numbering resources would be needed. If tampering resulted in an inability to communicate with that E.164 number, the consequences could be very serious including lost income, decreased customer satisfaction, and increased user complaints.
The present invention provides a much simpler and secure way of permitting resolution of traditional telephone numbers and other entity/device identifiers into Internet addresses. It further accommodates portability of telephone numbers and other entity/device identifiers without having to substantially modify or rework the DNS infrastructure or various established number portability schemes. Self-contained, additional functionality is readily implemented on a DNS server to allow smooth IP address resolution of telephone numbers or other entity/device identifiers by taking advantage of existing portability databases without impacting the existing networks that create and maintain such portability databases.
In general, the present invention permits resolution of a telephone number or other identifier of an entity to be contacted into an Internet address, i.e., an IP address, using a domain name system and a portability database. The term “entity” encompasses devices as well as subscribers, users, etc. Portability database is often used in the context of a telephone number portability database. However, the invention is not limited thereto and encompasses any type of portability database. The telephone number or other identifier to be resolved is provided to a server which includes functionality for accessing a portability database. For the telephone number example, a telephone number portability database may be a mobile network number portability database, a fixed network number portability database, and/or an intelligent network number portability database.
From the access of the number portability database, the server determines, among other things, the identity of the network operator currently serving the entity/device to be contacted. In particular, the number portability database provides a network identifier corresponding to the network operator associated with the entity. The network identifier is used to make the process of resolving the telephone number into a corresponding Internet address faster and more efficient by sending the query directly to a DNS server in the identified network for resolution.
In a non-limiting, example embodiment, a DNS server that receives the request to resolve an E.164 telephone number into an IP address includes a DNS resolution processor for handling Internet address resolution requests as well as a resolution extension handler. The resolution extension handler consults a telephone number portability database using the telephone number and obtains therefrom the network identifier corresponding to the network operator currently associated with the entity. The DNS resolution processor uses that network identifier in the process of resolving the telephone number into the corresponding Internet address. The resolution extension handler is configured to use or emulate a protocol associated with the number portability database when it makes its consultation. As a result, the DNS server uses existing number portability databases rather than having to create DNS number portability databases for a myriad of telephone numbers or other entity addresses.
Further example implementation details in this non-limiting embodiment include the DNS resolution request for an input E.164 telephone number being constructed as an ENUM query. The DNS resolution processor includes the network identifier returned from the number portability database in the ENUM query and sends the query on to a second DNS server corresponding to the network identifier. The DNS resolution processor receives from the second DNS a naming authority pointer (NAPTR) record with one or more resource records containing uniform resource identifiers (URIs) corresponding either to the actual telephone number, (e.g., an e-mail address), or to the network boundary servers where the E.164 subscription resides, (e.g., the address of a proxy server, a gateway switching center, or a multimedia messaging service center used for the delivery of messages to users). In other words, the NAPTR record includes available ways of contacting a specific node identified by the domain name, including E.164 telephone numbers. Specifically, the NAPTR record includes an Internet address associated with the telephone number.